import http from '@/plugins/axios';

/**
 * 角色分页
 * @param data 参数
 */
export function fetchRolePage(data: any): Promise<BaseApi.Page<Role.BaseInfo[]>> {
  // 使用 Promise 包裹异步操作
  return new Promise((resolve, reject) => {

    // 发起 HTTP 请求
    http<BaseApi.Page<Role.BaseInfo[]>>({
      url: '/system/roles/getPage',
      method: 'get',
      params: data,
    })
      .then(response => {
        // 请求成功时，返回数据
        resolve(response.data);
      })
      .catch(error => {
        // 请求失败时，捕获并抛出错误
        console.error('Login failed:', error);
        reject(error);
      });
  });
}

//获取用户角色
export function fetchUserRole(): Promise<Role.BaseInfo[]> {
  // 使用 Promise 包裹异步操作
  return new Promise((resolve, reject) => {

    // 发起 HTTP 请求
    http<Role.BaseInfo[]>({
      url: '/system/roles/getUserRole',
      method: 'get',
    })
      .then(response => {
        // 请求成功时，返回数据
        resolve(response.data);
      })
      .catch(error => {
        // 请求失败时，捕获并抛出错误
        console.error('Login failed:', error);
        reject(error);
      });
  });
}


/**
 * 保存角色
 */
export function fetchRoleSave(data: Role.BaseInfo): Promise<string> {
  // 使用 Promise 包裹异步操作
  return new Promise((resolve, reject) => {

    // 发起 HTTP 请求
    http<string>({
      url: '/system/roles/save',
      method: 'post',
      data
    })
      .then(response => {
        // 请求成功时，返回数据
        resolve(response.data);
      })
      .catch(error => {
        // 请求失败时，捕获并抛出错误
        console.error('Login failed:', error);
        reject(error);
      });
  });
}

//修改角色
export function fetchRoleUpdate(data: Role.BaseInfo): Promise<string> {
  // 使用 Promise 包裹异步操作
  return new Promise((resolve, reject) => {

    // 发起 HTTP 请求
    http<string>({
      url: '/system/roles/updateById',
      method: 'put',
      data
    })
      .then(response => {
        // 请求成功时，返回数据
        resolve(response.data);
      })
      .catch(error => {
        // 请求失败时，捕获并抛出错误
        console.error('Login failed:', error);
        reject(error);
      });
  });
}

//获取用户列表
export function fetchRoleList(): Promise<Role.BaseInfo[]> {
  // 使用 Promise 包裹异步操作
  return new Promise((resolve, reject) => {

    // 发起 HTTP 请求
    http<Role.BaseInfo[]>({
      url: '/system/roles/list',
      method: 'get',
    })
      .then(response => {
        // 请求成功时，返回数据
        resolve(response.data);
      })
      .catch(error => {
        // 请求失败时，捕获并抛出错误
        console.error('Login failed:', error);
        reject(error);
      });
  });
}

//获取角色详细信息
export function fetchRoleDetails(roleId: string | number): Promise<Role.BaseInfo> {
  let url;
  if (roleId) {
    url = `/system/roles/getRoleDetails/${roleId}`
  } else {
    url = '/system/roles/getRoleDetails'

  }
  // 使用 Promise 包裹异步操作
  return new Promise((resolve, reject) => {

    // 发起 HTTP 请求
    http<Role.BaseInfo>({
      url: url,
      method: 'get',
    })
      .then(response => {
        // 请求成功时，返回数据
        resolve(response.data);
      })
      .catch(error => {
        // 请求失败时，捕获并抛出错误
        console.error('Login failed:', error);
        reject(error);
      });
  });
}



